﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ajayumi.develop.win32.GRssReader.Service.Model;
using System.ServiceModel.Syndication;

namespace ajayumi.develop.win32.GRssReader.Service
{
    public interface IReaderService : IDisposable
    {
        bool IsLogin { get; set; }
        string CacheFolder { get; set; }
        SyndicationFeed Feed { get; set; }

        IEnumerable<ArticleInfo> GetArticleInfos(SubscriptionInfo subscriptionInfo, int limit);
        List<SubscriptionInfo> GetSubscriptionInfoList();
        void Update();

        void AddState(ArticleInfo item, State state);
        void AddSubscription(string feed);
        void AddTags(ArticleInfo item, params string[] tags);
        System.Collections.Generic.IEnumerable<ArticleInfo> GetStateItems(State state, int limit);
        System.Collections.Generic.IEnumerable<ArticleInfo> GetTagItems(string tag, int limit);
        void RemoveState(ArticleInfo item, State state);
        void RemoveTag(ArticleInfo item, string tag);
        void RemoveTag(string tag);
        void RenameTag(string tag, string newName);
        void TagSubscription(string feed, string folder);
    }
}
